class FabricaRecursos: public Singleton<FabricaRecursos>
{
public:

    RecursoAlmacenamiento *recursoBuffer(
            const TipoSerializacion &tSerializacion,
            const UnidadAlmacenamiento &uAlmacenamiento,
            const unsigned long int &tamanoUnidad);

    RecursoAlmacenamiento *recursoArchivo(const string &rutaArchivo,
            const string &nombreArchivo,
            const TipoSerializacion &tSerializacion,
            const UnidadAlmacenamiento &uAlmacenamiento,
            const unsigned long int &tamanoUnidad,
            const TipoIndexado &tIndexado);

    RecursoAlmacenamiento *recursoBufferArchivo(const string &rutaArchivo,
            const string &nombreArchivo,
            const TipoSerializacion &tSerializacion,
            const UnidadAlmacenamiento &uAlmacenamiento,
            const unsigned long int &tamanoUnidad,
            const TipoIndexado &tIndexado);

    RecursoAlmacenamiento *recuperarRecurso(const string &rutaArchivo,
            const string &nombreArchivo,
            const TipoSerializacion &tSerializacion);
};
